home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / FROMUTS / UNIXLIB37B / src / c / memcmp < prev    next >
Text File  |  1990-09-27  |  1KB  |  54 lines

  1. #ifdef __STDC__
  2. static char sccs_id[] = "@(#) memcmp.c 1.0 "__DATE__" HJR";
  3. #else
  4. static char sccs_id[] = "@(#) memcmp.c 1.0 26/9/90 HJR";
  5. #endif
  6.  
  7. /* memcmp.c (c) Copyright 1990 H.Rogers */
  8.  
  9. #include <string.h>
  10.  
  11. #ifdef __STDC__
  12. int memcmp(const void *s1,const void *s2,register size_t n)
  13. #else
  14. int memcmp(s1,s2,n)
  15. const void *s1;
  16. const void *s2;
  17. register size_t n;
  18. #endif
  19. {
  20. register unsigned char *_s1 = (unsigned char *)s1,*_s2 = (unsigned char *)s2;
  21.  
  22. while (n & 0x07)
  23.   {
  24.   n--;
  25.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  26.   }
  27. n >>= 3; while (n)
  28.   {
  29.   n--;
  30.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  31.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  32.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  33.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  34.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  35.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  36.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  37.   if (*_s1 != *_s2) goto ret; _s1++,_s2++;
  38.   }
  39.  
  40. ret: return(*_s1 - *_s2);
  41. }
  42.  
  43. #ifdef __STDC__
  44. int (bcmp)(register const void *s1,register const void *s2,register size_t n)
  45. #else
  46. int (bcmp)(s1,s2,n)
  47. register const void *s1;
  48. register const void *s2;
  49. register size_t n;
  50. #endif
  51. {
  52. return(bcmp(s1,s2,n));
  53. }
  54.